class Solution {//leetcode740  删除并获得点数
public:
    int deleteAndEarn(vector<int>& nums) {
        int arr[100001]={0}; //映射1-10000
        for(auto e:nums){
            arr[e]+=e;
        }
        //创建并初始化dp表
        vector<int> f(10001);
        vector<int> g(10001);
        f[0]=arr[0];
        g[0]=0;
        for(int i=1;i<10001;i++){
            f[i]=(g[i-1]+arr[i]);
            g[i]=(max(f[i-1],g[i-1]));
        }
        return max(f.back(),g.back());
    }
};